package com.daffodil.storage.service;

import java.util.List;

import javax.servlet.http.HttpServletResponse;

import com.daffodil.storage.model.Page;
import com.daffodil.storage.model.StorageRequest;
import com.daffodil.storage.model.StorageResult;

/**
 * 对象存储实例接口
 * @author yweijian
 * @date 2022年12月8日
 * @version 2.0.0
 * @description
 */
public interface IStorageService {

    /**
     * -对象存储上传
     * @param storageRequest 对象存储请求参数
     * @return
     */
    public StorageResult upolad(StorageRequest storageRequest);

    /**
     * -分页查询存储对象
     * @param folder 业务名称目录
     * @param name 检索文件名称
     * @param page 分页
     * @return
     */
    public List<StorageResult> list(String folder, String name, Page page);

    /**
     * -存储对象下载
     * @param key 存储对象标识
     * @param response
     */
    public void download(String key, HttpServletResponse response);

    /**
     * -存储对象删除
     * @param key 存储对象标识
     */
    public void remove(String key);

}
